package com.clear.honghefinance.biz.modules.currency.service;

import com.clear.honghefinance.biz.modules.currency.domain.dto.CreateCurrencyConfigDTO;
import com.clear.honghefinance.biz.modules.currency.domain.dto.DeleteCurrencyConfigDTO;
import com.clear.honghefinance.biz.modules.currency.domain.dto.UpdateCurrencyConfigDTO;
import com.clear.honghefinance.biz.modules.currency.domain.dto.UpdateCurrencyConfigStateDTO;
import com.clear.honghefinance.biz.modules.currency.domain.entity.CurrencyConfig;
import com.baomidou.mybatisplus.extension.service.IService;
import com.clear.honghefinance.biz.modules.currency.domain.vo.ListCurrencyConfigVO;
import com.clear.honghefinance.biz.modules.currency.domain.vo.GetCurrencyConfigDetailVO;

import java.util.List;

/**
 * <p>
 * 货币配置 服务类
 * </p>
 *
 * @author 程序员clear
 * @since 2024-08-21
 */
public interface ICurrencyConfigService extends IService<CurrencyConfig> {


    /**
     * 创建币别
     *
     * @param dto
     * @return
     */
    boolean create(CreateCurrencyConfigDTO dto);

    /**
     * 修改币别
     *
     * @param dto
     * @return
     */
    boolean update(UpdateCurrencyConfigDTO dto);

    /**
     * 禁用启用币别
     * @param dto
     * @return
     */
    boolean updateDisable(UpdateCurrencyConfigStateDTO dto);

    /**
     * 删除币别
     *
     * @param dto
     * @return
     */
    boolean delete(DeleteCurrencyConfigDTO dto);


    /**
     * 根据id获取详情
     *
     * @param id
     * @return
     */
    GetCurrencyConfigDetailVO getDetailById(Long id);

    /**
     * 获取币别列表
     *
     * @return
     */
    List<ListCurrencyConfigVO> listAll();

}
